package cc.momas.momall.web.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import cc.momas.common.utils.E3Result;
import cc.momas.common.vo.EasyUIDataGridResult;
import cc.momas.momall.po.TbItem;
import cc.momas.momall.service.IItemService;


@Controller
public class ItemController {

	@Autowired
	private IItemService itemSvc;
	
	@RequestMapping("/item/list")
	@ResponseBody
	private EasyUIDataGridResult query(
			@RequestParam(value="page",defaultValue="1")Integer page,
			@RequestParam(value="rows",defaultValue="10")Integer rows
			){
		EasyUIDataGridResult result = itemSvc.getItemList(page, rows);
		return result;
	}
	
	/***
	 * 根据Item的Id查询Item
	 * @param itemId item的Id
	 * @return
	 */
	@RequestMapping(value="/item/{itemId}")
	@ResponseBody
	private TbItem getItemById(@PathVariable Long itemId) {
		TbItem item = itemSvc.getItemById(itemId);
		return item;
	}
	
	/**
	 * 更新一个商品
	 * @param item 商品(带Id)
	 * @param desc 商品描述
	 * @param itemParams 商品规格(未使用)
	 * @param itemParamId 商品规格id(未使用)
	 * @return
	 */
	@RequestMapping(value="rest/item/update")
	@ResponseBody
	private E3Result updateItem(TbItem item,String desc,String itemParams,String itemParamId) {
		if(item == null || item.getId() == null) {
			return E3Result.build(403,"参数错误");
		}
	
		itemSvc.updateItemByPrimaryKeySelective(item,desc,itemParams,itemParamId);
		return E3Result.ok();
	}
	
	
	/**
	 * 添加一个item
	 * @param item 被添加的item,页面上的参数大多被这一个对象接收
	 * @param desc item描述,
	 * @param itemParams 暂时没有作用的一个值,但前端传过来了,就接住了
	 * @return
	 */
	@RequestMapping("/item/save")
	@ResponseBody
	private E3Result saveItem(TbItem item,@RequestParam("desc")String desc,@RequestParam("itemParams")String itemParams) {
		return itemSvc.save(item,desc,itemParams) > 0 ? E3Result.ok() : E3Result.ok("操作失败,未知错误");
	}
	
	
	/**
	 * 删除商品
	 */
	@RequestMapping("/rest/item/delete")
	@ResponseBody
	private E3Result deleItem(String ids) {
		return itemSvc.delete(ids) > 0 ? E3Result.ok() : E3Result.ok("操作失败,未知错误");
	}
	
	/**
	 * 下架商品
	 */
	@RequestMapping("/rest/item/instock")
	@ResponseBody
	private E3Result instock(String ids) {
		return itemSvc.updateInStock(ids) > 0 ? E3Result.ok() : E3Result.ok("操作失败,未知错误");
	}
	
	/**
	 * 上架商品
	 */
	@RequestMapping("/rest/item/reshelf")
	@ResponseBody
	private E3Result reshelf(String ids) {
		return itemSvc.updateReshelf(ids) > 0 ? E3Result.ok() : E3Result.ok("操作失败,未知错误");
	}
	
	/**
	 * 去更新商品
	 */
	@RequestMapping("/rest/page/item-edit")
	private String toUpdaItem() {
		return "item-edit";
	}

}
